(0) Obligation:

Clauses:

balance(T, TB) :- balance(T, -(I, []), -(.(','(TB, -(I, [])), X), X), -(Rest, []), -(Rest, [])).
balance(nil, -(X, X), -(A, B), -(A, B), -(.(','(nil, -(C, C)), T), T)).
balance(tree(L, V, R), -(IH, IT), -(.(','(tree(LB, VB, RB), -(A, D)), H), .(','(LB, -(A, .(VB, X))), .(','(RB, -(X, D)), T))), -(HR, TR), -(NH, NT)) :- ','(balance(L, -(IH, .(V, IT1)), -(H, T), -(HR1, TR1), -(NH, NT1)), balance(R, -(IT1, IT), -(HR1, TR1), -(HR, TR), -(NT1, NT))).

Query: balance(g,a)

(1) PrologToDTProblemTransformerProof (SOUND transformation)

Built DT problem from termination graph DT10.

(2) Obligation:

Triples:

balanceA(tree(X1, X2, X3), X4, X5, X6, .(','(tree(X7, X8, X9), -(X10, X11)), X12), .(','(X7, -(X10, .(X8, X13))), .(','(X9, -(X13, X11)), X14)), X15, X16, X17, X18) :- balanceA(X1, X4, X2, X19, X12, X14, X20, X21, X17, X22).
balanceA(tree(X1, X2, X3), X4, X5, X6, .(','(tree(X7, X8, X9), -(X10, X11)), X12), .(','(X7, -(X10, .(X8, X13))), .(','(X9, -(X13, X11)), X14)), X15, X16, X17, X18) :- ','(balancecA(X1, X4, X2, X19, X12, X14, X20, X21, X17, X22), balanceA(X3, X19, X5, X6, X20, X21, X15, X16, X22, X18)).
balanceB(tree(X1, X2, X3), X4, .(','(tree(X5, X6, X7), -(X8, X9)), X10), .(','(X5, -(X8, .(X6, X11))), .(','(X7, -(X11, X9)), X12)), X13, X14) :- balanceA(X1, X4, X2, X15, X10, X12, X16, X17, X14, X18).
balanceB(tree(X1, X2, X3), X4, .(','(tree(X5, X6, X7), -(X8, X9)), X10), .(','(X5, -(X8, .(X6, X11))), .(','(X7, -(X11, X9)), X12)), X13, X14) :- ','(balancecA(X1, X4, X2, X15, X10, X12, X16, X17, X14, X18), balanceB(X3, X15, X16, X17, X13, X18)).
balanceD(tree(tree(X1, X2, X3), X4, X5), tree(tree(X6, X7, X8), X9, X10)) :- balanceA(X1, X11, X2, X12, .(','(X10, -(X13, [])), .(','(X6, -(X11, .(X7, X14))), .(','(X8, -(X14, .(X9, X13))), X15))), X15, X16, X17, X18, X19).
balanceD(tree(tree(X1, X2, X3), X4, X5), tree(tree(X6, X7, X8), X9, X10)) :- ','(balancecA(X1, X11, X2, X12, .(','(X10, -(X13, [])), .(','(X6, -(X11, .(X7, X14))), .(','(X8, -(X14, .(X9, X13))), X15))), X15, X16, X17, X18, X19), balanceA(X3, X12, X4, X20, X16, X17, X21, X22, X19, X23)).
balanceD(tree(X1, X2, X3), tree(X4, X5, X6)) :- ','(balancecC(X1, X7, X2, X8, X4, X5, X9, X6, X10, X11, X12, X13, X14), balanceB(X3, X8, X11, X12, X13, X14)).

Clauses:

balancecA(nil, .(X1, X2), X1, X2, X3, X4, X3, X4, .(','(nil, -(X5, X5)), X6), X6).
balancecA(tree(X1, X2, X3), X4, X5, X6, .(','(tree(X7, X8, X9), -(X10, X11)), X12), .(','(X7, -(X10, .(X8, X13))), .(','(X9, -(X13, X11)), X14)), X15, X16, X17, X18) :- ','(balancecA(X1, X4, X2, X19, X12, X14, X20, X21, X17, X22), balancecA(X3, X19, X5, X6, X20, X21, X15, X16, X22, X18)).
balancecB(nil, [], X1, [], X1, .(','(nil, -(X2, X2)), [])).
balancecB(tree(X1, X2, X3), X4, .(','(tree(X5, X6, X7), -(X8, X9)), X10), .(','(X5, -(X8, .(X6, X11))), .(','(X7, -(X11, X9)), X12)), X13, X14) :- ','(balancecA(X1, X4, X2, X15, X10, X12, X16, X17, X14, X18), balancecB(X3, X15, X16, X17, X13, X18)).
balancecC(nil, .(X1, X2), X1, X2, X3, X4, X5, X6, X7, .(','(X3, -(.(X1, X2), .(X4, X5))), .(','(X6, -(X5, [])), X7)), X7, .(','(nil, -(X8, X8)), X9), X9).
balancecC(tree(X1, X2, X3), X4, X5, X6, tree(X7, X8, X9), X10, X11, X12, .(','(X7, -(X4, .(X8, X13))), .(','(X9, -(X13, .(X10, X11))), X14)), X15, X16, X17, X18) :- ','(balancecA(X1, X4, X2, X19, .(','(X12, -(X11, [])), .(','(X7, -(X4, .(X8, X13))), .(','(X9, -(X13, .(X10, X11))), X14))), X14, X20, X21, X17, X22), balancecA(X3, X19, X5, X6, X20, X21, X15, X16, X22, X18)).

Afs:

balanceD(x1, x2)  =  balanceD(x1)

(3) TriplesToPiDPProof (SOUND transformation)

We use the technique of [DT09]. With regard to the inferred argument filtering the predicates were used in the following modes:
balanceD_in: (b,f)
balanceA_in: (b,f,b,f,f,f,f,f,f,f)
balancecA_in: (b,f,b,f,f,f,f,f,f,f)
balancecC_in: (b,f,b,f,f,f,f,f,f,f,f,f,f)
balanceB_in: (b,f,f,f,f,f)
Transforming TRIPLES into the following Term Rewriting System:
Pi DP problem:
The TRS P consists of the following rules:

BALANCED_IN_GA(tree(tree(X1, X2, X3), X4, X5), tree(tree(X6, X7, X8), X9, X10)) → U7_GA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, balanceA_in_gagaaaaaaa(X1, X11, X2, X12, .(','(X10, -(X13, [])), .(','(X6, -(X11, .(X7, X14))), .(','(X8, -(X14, .(X9, X13))), X15))), X15, X16, X17, X18, X19))
BALANCED_IN_GA(tree(tree(X1, X2, X3), X4, X5), tree(tree(X6, X7, X8), X9, X10)) → BALANCEA_IN_GAGAAAAAAA(X1, X11, X2, X12, .(','(X10, -(X13, [])), .(','(X6, -(X11, .(X7, X14))), .(','(X8, -(X14, .(X9, X13))), X15))), X15, X16, X17, X18, X19)
BALANCEA_IN_GAGAAAAAAA(tree(X1, X2, X3), X4, X5, X6, .(','(tree(X7, X8, X9), -(X10, X11)), X12), .(','(X7, -(X10, .(X8, X13))), .(','(X9, -(X13, X11)), X14)), X15, X16, X17, X18) → U1_GAGAAAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, balanceA_in_gagaaaaaaa(X1, X4, X2, X19, X12, X14, X20, X21, X17, X22))
BALANCEA_IN_GAGAAAAAAA(tree(X1, X2, X3), X4, X5, X6, .(','(tree(X7, X8, X9), -(X10, X11)), X12), .(','(X7, -(X10, .(X8, X13))), .(','(X9, -(X13, X11)), X14)), X15, X16, X17, X18) → BALANCEA_IN_GAGAAAAAAA(X1, X4, X2, X19, X12, X14, X20, X21, X17, X22)
BALANCEA_IN_GAGAAAAAAA(tree(X1, X2, X3), X4, X5, X6, .(','(tree(X7, X8, X9), -(X10, X11)), X12), .(','(X7, -(X10, .(X8, X13))), .(','(X9, -(X13, X11)), X14)), X15, X16, X17, X18) → U2_GAGAAAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, balancecA_in_gagaaaaaaa(X1, X4, X2, X19, X12, X14, X20, X21, X17, X22))
U2_GAGAAAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, balancecA_out_gagaaaaaaa(X1, X4, X2, X19, X12, X14, X20, X21, X17, X22)) → U3_GAGAAAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, balanceA_in_gagaaaaaaa(X3, X19, X5, X6, X20, X21, X15, X16, X22, X18))
U2_GAGAAAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, balancecA_out_gagaaaaaaa(X1, X4, X2, X19, X12, X14, X20, X21, X17, X22)) → BALANCEA_IN_GAGAAAAAAA(X3, X19, X5, X6, X20, X21, X15, X16, X22, X18)
BALANCED_IN_GA(tree(tree(X1, X2, X3), X4, X5), tree(tree(X6, X7, X8), X9, X10)) → U8_GA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, balancecA_in_gagaaaaaaa(X1, X11, X2, X12, .(','(X10, -(X13, [])), .(','(X6, -(X11, .(X7, X14))), .(','(X8, -(X14, .(X9, X13))), X15))), X15, X16, X17, X18, X19))
U8_GA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, balancecA_out_gagaaaaaaa(X1, X11, X2, X12, .(','(X10, -(X13, [])), .(','(X6, -(X11, .(X7, X14))), .(','(X8, -(X14, .(X9, X13))), X15))), X15, X16, X17, X18, X19)) → U9_GA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, balanceA_in_gagaaaaaaa(X3, X12, X4, X20, X16, X17, X21, X22, X19, X23))
U8_GA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, balancecA_out_gagaaaaaaa(X1, X11, X2, X12, .(','(X10, -(X13, [])), .(','(X6, -(X11, .(X7, X14))), .(','(X8, -(X14, .(X9, X13))), X15))), X15, X16, X17, X18, X19)) → BALANCEA_IN_GAGAAAAAAA(X3, X12, X4, X20, X16, X17, X21, X22, X19, X23)
BALANCED_IN_GA(tree(X1, X2, X3), tree(X4, X5, X6)) → U10_GA(X1, X2, X3, X4, X5, X6, balancecC_in_gagaaaaaaaaaa(X1, X7, X2, X8, X4, X5, X9, X6, X10, X11, X12, X13, X14))
U10_GA(X1, X2, X3, X4, X5, X6, balancecC_out_gagaaaaaaaaaa(X1, X7, X2, X8, X4, X5, X9, X6, X10, X11, X12, X13, X14)) → U11_GA(X1, X2, X3, X4, X5, X6, balanceB_in_gaaaaa(X3, X8, X11, X12, X13, X14))
U10_GA(X1, X2, X3, X4, X5, X6, balancecC_out_gagaaaaaaaaaa(X1, X7, X2, X8, X4, X5, X9, X6, X10, X11, X12, X13, X14)) → BALANCEB_IN_GAAAAA(X3, X8, X11, X12, X13, X14)
BALANCEB_IN_GAAAAA(tree(X1, X2, X3), X4, .(','(tree(X5, X6, X7), -(X8, X9)), X10), .(','(X5, -(X8, .(X6, X11))), .(','(X7, -(X11, X9)), X12)), X13, X14) → U4_GAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, balanceA_in_gagaaaaaaa(X1, X4, X2, X15, X10, X12, X16, X17, X14, X18))
BALANCEB_IN_GAAAAA(tree(X1, X2, X3), X4, .(','(tree(X5, X6, X7), -(X8, X9)), X10), .(','(X5, -(X8, .(X6, X11))), .(','(X7, -(X11, X9)), X12)), X13, X14) → BALANCEA_IN_GAGAAAAAAA(X1, X4, X2, X15, X10, X12, X16, X17, X14, X18)
BALANCEB_IN_GAAAAA(tree(X1, X2, X3), X4, .(','(tree(X5, X6, X7), -(X8, X9)), X10), .(','(X5, -(X8, .(X6, X11))), .(','(X7, -(X11, X9)), X12)), X13, X14) → U5_GAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, balancecA_in_gagaaaaaaa(X1, X4, X2, X15, X10, X12, X16, X17, X14, X18))
U5_GAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, balancecA_out_gagaaaaaaa(X1, X4, X2, X15, X10, X12, X16, X17, X14, X18)) → U6_GAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, balanceB_in_gaaaaa(X3, X15, X16, X17, X13, X18))
U5_GAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, balancecA_out_gagaaaaaaa(X1, X4, X2, X15, X10, X12, X16, X17, X14, X18)) → BALANCEB_IN_GAAAAA(X3, X15, X16, X17, X13, X18)

The TRS R consists of the following rules:

balancecA_in_gagaaaaaaa(nil, .(X1, X2), X1, X2, X3, X4, X3, X4, .(','(nil, -(X5, X5)), X6), X6) → balancecA_out_gagaaaaaaa(nil, .(X1, X2), X1, X2, X3, X4, X3, X4, .(','(nil, -(X5, X5)), X6), X6)
balancecA_in_gagaaaaaaa(tree(X1, X2, X3), X4, X5, X6, .(','(tree(X7, X8, X9), -(X10, X11)), X12), .(','(X7, -(X10, .(X8, X13))), .(','(X9, -(X13, X11)), X14)), X15, X16, X17, X18) → U13_gagaaaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, balancecA_in_gagaaaaaaa(X1, X4, X2, X19, X12, X14, X20, X21, X17, X22))
U13_gagaaaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, balancecA_out_gagaaaaaaa(X1, X4, X2, X19, X12, X14, X20, X21, X17, X22)) → U14_gagaaaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, balancecA_in_gagaaaaaaa(X3, X19, X5, X6, X20, X21, X15, X16, X22, X18))
U14_gagaaaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, balancecA_out_gagaaaaaaa(X3, X19, X5, X6, X20, X21, X15, X16, X22, X18)) → balancecA_out_gagaaaaaaa(tree(X1, X2, X3), X4, X5, X6, .(','(tree(X7, X8, X9), -(X10, X11)), X12), .(','(X7, -(X10, .(X8, X13))), .(','(X9, -(X13, X11)), X14)), X15, X16, X17, X18)
balancecC_in_gagaaaaaaaaaa(nil, .(X1, X2), X1, X2, X3, X4, X5, X6, X7, .(','(X3, -(.(X1, X2), .(X4, X5))), .(','(X6, -(X5, [])), X7)), X7, .(','(nil, -(X8, X8)), X9), X9) → balancecC_out_gagaaaaaaaaaa(nil, .(X1, X2), X1, X2, X3, X4, X5, X6, X7, .(','(X3, -(.(X1, X2), .(X4, X5))), .(','(X6, -(X5, [])), X7)), X7, .(','(nil, -(X8, X8)), X9), X9)
balancecC_in_gagaaaaaaaaaa(tree(X1, X2, X3), X4, X5, X6, tree(X7, X8, X9), X10, X11, X12, .(','(X7, -(X4, .(X8, X13))), .(','(X9, -(X13, .(X10, X11))), X14)), X15, X16, X17, X18) → U17_gagaaaaaaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, balancecA_in_gagaaaaaaa(X1, X4, X2, X19, .(','(X12, -(X11, [])), .(','(X7, -(X4, .(X8, X13))), .(','(X9, -(X13, .(X10, X11))), X14))), X14, X20, X21, X17, X22))
U17_gagaaaaaaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, balancecA_out_gagaaaaaaa(X1, X4, X2, X19, .(','(X12, -(X11, [])), .(','(X7, -(X4, .(X8, X13))), .(','(X9, -(X13, .(X10, X11))), X14))), X14, X20, X21, X17, X22)) → U18_gagaaaaaaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, balancecA_in_gagaaaaaaa(X3, X19, X5, X6, X20, X21, X15, X16, X22, X18))
U18_gagaaaaaaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, balancecA_out_gagaaaaaaa(X3, X19, X5, X6, X20, X21, X15, X16, X22, X18)) → balancecC_out_gagaaaaaaaaaa(tree(X1, X2, X3), X4, X5, X6, tree(X7, X8, X9), X10, X11, X12, .(','(X7, -(X4, .(X8, X13))), .(','(X9, -(X13, .(X10, X11))), X14)), X15, X16, X17, X18)

The argument filtering Pi contains the following mapping:
tree(x1, x2, x3)  =  tree(x1, x2, x3)
balanceA_in_gagaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10)  =  balanceA_in_gagaaaaaaa(x1, x3)
balancecA_in_gagaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10)  =  balancecA_in_gagaaaaaaa(x1, x3)
nil  =  nil
balancecA_out_gagaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10)  =  balancecA_out_gagaaaaaaa(x1, x3)
U13_gagaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19)  =  U13_gagaaaaaaa(x1, x2, x3, x5, x19)
U14_gagaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23)  =  U14_gagaaaaaaa(x1, x2, x3, x5, x23)
balancecC_in_gagaaaaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13)  =  balancecC_in_gagaaaaaaaaaa(x1, x3)
balancecC_out_gagaaaaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13)  =  balancecC_out_gagaaaaaaaaaa(x1, x3)
U17_gagaaaaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19)  =  U17_gagaaaaaaaaaa(x1, x2, x3, x5, x19)
U18_gagaaaaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23)  =  U18_gagaaaaaaaaaa(x1, x2, x3, x5, x23)
balanceB_in_gaaaaa(x1, x2, x3, x4, x5, x6)  =  balanceB_in_gaaaaa(x1)
BALANCED_IN_GA(x1, x2)  =  BALANCED_IN_GA(x1)
U7_GA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)  =  U7_GA(x1, x2, x3, x4, x5, x11)
BALANCEA_IN_GAGAAAAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10)  =  BALANCEA_IN_GAGAAAAAAA(x1, x3)
U1_GAGAAAAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19)  =  U1_GAGAAAAAAA(x1, x2, x3, x5, x19)
U2_GAGAAAAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19)  =  U2_GAGAAAAAAA(x1, x2, x3, x5, x19)
U3_GAGAAAAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19)  =  U3_GAGAAAAAAA(x1, x2, x3, x5, x19)
U8_GA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)  =  U8_GA(x1, x2, x3, x4, x5, x11)
U9_GA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)  =  U9_GA(x1, x2, x3, x4, x5, x11)
U10_GA(x1, x2, x3, x4, x5, x6, x7)  =  U10_GA(x1, x2, x3, x7)
U11_GA(x1, x2, x3, x4, x5, x6, x7)  =  U11_GA(x1, x2, x3, x7)
BALANCEB_IN_GAAAAA(x1, x2, x3, x4, x5, x6)  =  BALANCEB_IN_GAAAAA(x1)
U4_GAAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15)  =  U4_GAAAAA(x1, x2, x3, x15)
U5_GAAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15)  =  U5_GAAAAA(x1, x2, x3, x15)
U6_GAAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15)  =  U6_GAAAAA(x1, x2, x3, x15)

We have to consider all (P,R,Pi)-chains

Infinitary Constructor Rewriting Termination of PiDP implies Termination of TRIPLES

(4) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

BALANCED_IN_GA(tree(tree(X1, X2, X3), X4, X5), tree(tree(X6, X7, X8), X9, X10)) → U7_GA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, balanceA_in_gagaaaaaaa(X1, X11, X2, X12, .(','(X10, -(X13, [])), .(','(X6, -(X11, .(X7, X14))), .(','(X8, -(X14, .(X9, X13))), X15))), X15, X16, X17, X18, X19))
BALANCED_IN_GA(tree(tree(X1, X2, X3), X4, X5), tree(tree(X6, X7, X8), X9, X10)) → BALANCEA_IN_GAGAAAAAAA(X1, X11, X2, X12, .(','(X10, -(X13, [])), .(','(X6, -(X11, .(X7, X14))), .(','(X8, -(X14, .(X9, X13))), X15))), X15, X16, X17, X18, X19)
BALANCEA_IN_GAGAAAAAAA(tree(X1, X2, X3), X4, X5, X6, .(','(tree(X7, X8, X9), -(X10, X11)), X12), .(','(X7, -(X10, .(X8, X13))), .(','(X9, -(X13, X11)), X14)), X15, X16, X17, X18) → U1_GAGAAAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, balanceA_in_gagaaaaaaa(X1, X4, X2, X19, X12, X14, X20, X21, X17, X22))
BALANCEA_IN_GAGAAAAAAA(tree(X1, X2, X3), X4, X5, X6, .(','(tree(X7, X8, X9), -(X10, X11)), X12), .(','(X7, -(X10, .(X8, X13))), .(','(X9, -(X13, X11)), X14)), X15, X16, X17, X18) → BALANCEA_IN_GAGAAAAAAA(X1, X4, X2, X19, X12, X14, X20, X21, X17, X22)
BALANCEA_IN_GAGAAAAAAA(tree(X1, X2, X3), X4, X5, X6, .(','(tree(X7, X8, X9), -(X10, X11)), X12), .(','(X7, -(X10, .(X8, X13))), .(','(X9, -(X13, X11)), X14)), X15, X16, X17, X18) → U2_GAGAAAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, balancecA_in_gagaaaaaaa(X1, X4, X2, X19, X12, X14, X20, X21, X17, X22))
U2_GAGAAAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, balancecA_out_gagaaaaaaa(X1, X4, X2, X19, X12, X14, X20, X21, X17, X22)) → U3_GAGAAAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, balanceA_in_gagaaaaaaa(X3, X19, X5, X6, X20, X21, X15, X16, X22, X18))
U2_GAGAAAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, balancecA_out_gagaaaaaaa(X1, X4, X2, X19, X12, X14, X20, X21, X17, X22)) → BALANCEA_IN_GAGAAAAAAA(X3, X19, X5, X6, X20, X21, X15, X16, X22, X18)
BALANCED_IN_GA(tree(tree(X1, X2, X3), X4, X5), tree(tree(X6, X7, X8), X9, X10)) → U8_GA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, balancecA_in_gagaaaaaaa(X1, X11, X2, X12, .(','(X10, -(X13, [])), .(','(X6, -(X11, .(X7, X14))), .(','(X8, -(X14, .(X9, X13))), X15))), X15, X16, X17, X18, X19))
U8_GA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, balancecA_out_gagaaaaaaa(X1, X11, X2, X12, .(','(X10, -(X13, [])), .(','(X6, -(X11, .(X7, X14))), .(','(X8, -(X14, .(X9, X13))), X15))), X15, X16, X17, X18, X19)) → U9_GA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, balanceA_in_gagaaaaaaa(X3, X12, X4, X20, X16, X17, X21, X22, X19, X23))
U8_GA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, balancecA_out_gagaaaaaaa(X1, X11, X2, X12, .(','(X10, -(X13, [])), .(','(X6, -(X11, .(X7, X14))), .(','(X8, -(X14, .(X9, X13))), X15))), X15, X16, X17, X18, X19)) → BALANCEA_IN_GAGAAAAAAA(X3, X12, X4, X20, X16, X17, X21, X22, X19, X23)
BALANCED_IN_GA(tree(X1, X2, X3), tree(X4, X5, X6)) → U10_GA(X1, X2, X3, X4, X5, X6, balancecC_in_gagaaaaaaaaaa(X1, X7, X2, X8, X4, X5, X9, X6, X10, X11, X12, X13, X14))
U10_GA(X1, X2, X3, X4, X5, X6, balancecC_out_gagaaaaaaaaaa(X1, X7, X2, X8, X4, X5, X9, X6, X10, X11, X12, X13, X14)) → U11_GA(X1, X2, X3, X4, X5, X6, balanceB_in_gaaaaa(X3, X8, X11, X12, X13, X14))
U10_GA(X1, X2, X3, X4, X5, X6, balancecC_out_gagaaaaaaaaaa(X1, X7, X2, X8, X4, X5, X9, X6, X10, X11, X12, X13, X14)) → BALANCEB_IN_GAAAAA(X3, X8, X11, X12, X13, X14)
BALANCEB_IN_GAAAAA(tree(X1, X2, X3), X4, .(','(tree(X5, X6, X7), -(X8, X9)), X10), .(','(X5, -(X8, .(X6, X11))), .(','(X7, -(X11, X9)), X12)), X13, X14) → U4_GAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, balanceA_in_gagaaaaaaa(X1, X4, X2, X15, X10, X12, X16, X17, X14, X18))
BALANCEB_IN_GAAAAA(tree(X1, X2, X3), X4, .(','(tree(X5, X6, X7), -(X8, X9)), X10), .(','(X5, -(X8, .(X6, X11))), .(','(X7, -(X11, X9)), X12)), X13, X14) → BALANCEA_IN_GAGAAAAAAA(X1, X4, X2, X15, X10, X12, X16, X17, X14, X18)
BALANCEB_IN_GAAAAA(tree(X1, X2, X3), X4, .(','(tree(X5, X6, X7), -(X8, X9)), X10), .(','(X5, -(X8, .(X6, X11))), .(','(X7, -(X11, X9)), X12)), X13, X14) → U5_GAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, balancecA_in_gagaaaaaaa(X1, X4, X2, X15, X10, X12, X16, X17, X14, X18))
U5_GAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, balancecA_out_gagaaaaaaa(X1, X4, X2, X15, X10, X12, X16, X17, X14, X18)) → U6_GAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, balanceB_in_gaaaaa(X3, X15, X16, X17, X13, X18))
U5_GAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, balancecA_out_gagaaaaaaa(X1, X4, X2, X15, X10, X12, X16, X17, X14, X18)) → BALANCEB_IN_GAAAAA(X3, X15, X16, X17, X13, X18)

The TRS R consists of the following rules:

balancecA_in_gagaaaaaaa(nil, .(X1, X2), X1, X2, X3, X4, X3, X4, .(','(nil, -(X5, X5)), X6), X6) → balancecA_out_gagaaaaaaa(nil, .(X1, X2), X1, X2, X3, X4, X3, X4, .(','(nil, -(X5, X5)), X6), X6)
balancecA_in_gagaaaaaaa(tree(X1, X2, X3), X4, X5, X6, .(','(tree(X7, X8, X9), -(X10, X11)), X12), .(','(X7, -(X10, .(X8, X13))), .(','(X9, -(X13, X11)), X14)), X15, X16, X17, X18) → U13_gagaaaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, balancecA_in_gagaaaaaaa(X1, X4, X2, X19, X12, X14, X20, X21, X17, X22))
U13_gagaaaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, balancecA_out_gagaaaaaaa(X1, X4, X2, X19, X12, X14, X20, X21, X17, X22)) → U14_gagaaaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, balancecA_in_gagaaaaaaa(X3, X19, X5, X6, X20, X21, X15, X16, X22, X18))
U14_gagaaaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, balancecA_out_gagaaaaaaa(X3, X19, X5, X6, X20, X21, X15, X16, X22, X18)) → balancecA_out_gagaaaaaaa(tree(X1, X2, X3), X4, X5, X6, .(','(tree(X7, X8, X9), -(X10, X11)), X12), .(','(X7, -(X10, .(X8, X13))), .(','(X9, -(X13, X11)), X14)), X15, X16, X17, X18)
balancecC_in_gagaaaaaaaaaa(nil, .(X1, X2), X1, X2, X3, X4, X5, X6, X7, .(','(X3, -(.(X1, X2), .(X4, X5))), .(','(X6, -(X5, [])), X7)), X7, .(','(nil, -(X8, X8)), X9), X9) → balancecC_out_gagaaaaaaaaaa(nil, .(X1, X2), X1, X2, X3, X4, X5, X6, X7, .(','(X3, -(.(X1, X2), .(X4, X5))), .(','(X6, -(X5, [])), X7)), X7, .(','(nil, -(X8, X8)), X9), X9)
balancecC_in_gagaaaaaaaaaa(tree(X1, X2, X3), X4, X5, X6, tree(X7, X8, X9), X10, X11, X12, .(','(X7, -(X4, .(X8, X13))), .(','(X9, -(X13, .(X10, X11))), X14)), X15, X16, X17, X18) → U17_gagaaaaaaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, balancecA_in_gagaaaaaaa(X1, X4, X2, X19, .(','(X12, -(X11, [])), .(','(X7, -(X4, .(X8, X13))), .(','(X9, -(X13, .(X10, X11))), X14))), X14, X20, X21, X17, X22))
U17_gagaaaaaaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, balancecA_out_gagaaaaaaa(X1, X4, X2, X19, .(','(X12, -(X11, [])), .(','(X7, -(X4, .(X8, X13))), .(','(X9, -(X13, .(X10, X11))), X14))), X14, X20, X21, X17, X22)) → U18_gagaaaaaaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, balancecA_in_gagaaaaaaa(X3, X19, X5, X6, X20, X21, X15, X16, X22, X18))
U18_gagaaaaaaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, balancecA_out_gagaaaaaaa(X3, X19, X5, X6, X20, X21, X15, X16, X22, X18)) → balancecC_out_gagaaaaaaaaaa(tree(X1, X2, X3), X4, X5, X6, tree(X7, X8, X9), X10, X11, X12, .(','(X7, -(X4, .(X8, X13))), .(','(X9, -(X13, .(X10, X11))), X14)), X15, X16, X17, X18)

The argument filtering Pi contains the following mapping:
tree(x1, x2, x3)  =  tree(x1, x2, x3)
balanceA_in_gagaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10)  =  balanceA_in_gagaaaaaaa(x1, x3)
balancecA_in_gagaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10)  =  balancecA_in_gagaaaaaaa(x1, x3)
nil  =  nil
balancecA_out_gagaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10)  =  balancecA_out_gagaaaaaaa(x1, x3)
U13_gagaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19)  =  U13_gagaaaaaaa(x1, x2, x3, x5, x19)
U14_gagaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23)  =  U14_gagaaaaaaa(x1, x2, x3, x5, x23)
balancecC_in_gagaaaaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13)  =  balancecC_in_gagaaaaaaaaaa(x1, x3)
balancecC_out_gagaaaaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13)  =  balancecC_out_gagaaaaaaaaaa(x1, x3)
U17_gagaaaaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19)  =  U17_gagaaaaaaaaaa(x1, x2, x3, x5, x19)
U18_gagaaaaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23)  =  U18_gagaaaaaaaaaa(x1, x2, x3, x5, x23)
balanceB_in_gaaaaa(x1, x2, x3, x4, x5, x6)  =  balanceB_in_gaaaaa(x1)
BALANCED_IN_GA(x1, x2)  =  BALANCED_IN_GA(x1)
U7_GA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)  =  U7_GA(x1, x2, x3, x4, x5, x11)
BALANCEA_IN_GAGAAAAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10)  =  BALANCEA_IN_GAGAAAAAAA(x1, x3)
U1_GAGAAAAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19)  =  U1_GAGAAAAAAA(x1, x2, x3, x5, x19)
U2_GAGAAAAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19)  =  U2_GAGAAAAAAA(x1, x2, x3, x5, x19)
U3_GAGAAAAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19)  =  U3_GAGAAAAAAA(x1, x2, x3, x5, x19)
U8_GA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)  =  U8_GA(x1, x2, x3, x4, x5, x11)
U9_GA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)  =  U9_GA(x1, x2, x3, x4, x5, x11)
U10_GA(x1, x2, x3, x4, x5, x6, x7)  =  U10_GA(x1, x2, x3, x7)
U11_GA(x1, x2, x3, x4, x5, x6, x7)  =  U11_GA(x1, x2, x3, x7)
BALANCEB_IN_GAAAAA(x1, x2, x3, x4, x5, x6)  =  BALANCEB_IN_GAAAAA(x1)
U4_GAAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15)  =  U4_GAAAAA(x1, x2, x3, x15)
U5_GAAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15)  =  U5_GAAAAA(x1, x2, x3, x15)
U6_GAAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15)  =  U6_GAAAAA(x1, x2, x3, x15)

We have to consider all (P,R,Pi)-chains

(5) DependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LOPSTR] contains 2 SCCs with 13 less nodes.

(6) Complex Obligation (AND)

(7) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

BALANCEA_IN_GAGAAAAAAA(tree(X1, X2, X3), X4, X5, X6, .(','(tree(X7, X8, X9), -(X10, X11)), X12), .(','(X7, -(X10, .(X8, X13))), .(','(X9, -(X13, X11)), X14)), X15, X16, X17, X18) → U2_GAGAAAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, balancecA_in_gagaaaaaaa(X1, X4, X2, X19, X12, X14, X20, X21, X17, X22))
U2_GAGAAAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, balancecA_out_gagaaaaaaa(X1, X4, X2, X19, X12, X14, X20, X21, X17, X22)) → BALANCEA_IN_GAGAAAAAAA(X3, X19, X5, X6, X20, X21, X15, X16, X22, X18)
BALANCEA_IN_GAGAAAAAAA(tree(X1, X2, X3), X4, X5, X6, .(','(tree(X7, X8, X9), -(X10, X11)), X12), .(','(X7, -(X10, .(X8, X13))), .(','(X9, -(X13, X11)), X14)), X15, X16, X17, X18) → BALANCEA_IN_GAGAAAAAAA(X1, X4, X2, X19, X12, X14, X20, X21, X17, X22)

The TRS R consists of the following rules:

balancecA_in_gagaaaaaaa(nil, .(X1, X2), X1, X2, X3, X4, X3, X4, .(','(nil, -(X5, X5)), X6), X6) → balancecA_out_gagaaaaaaa(nil, .(X1, X2), X1, X2, X3, X4, X3, X4, .(','(nil, -(X5, X5)), X6), X6)
balancecA_in_gagaaaaaaa(tree(X1, X2, X3), X4, X5, X6, .(','(tree(X7, X8, X9), -(X10, X11)), X12), .(','(X7, -(X10, .(X8, X13))), .(','(X9, -(X13, X11)), X14)), X15, X16, X17, X18) → U13_gagaaaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, balancecA_in_gagaaaaaaa(X1, X4, X2, X19, X12, X14, X20, X21, X17, X22))
U13_gagaaaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, balancecA_out_gagaaaaaaa(X1, X4, X2, X19, X12, X14, X20, X21, X17, X22)) → U14_gagaaaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, balancecA_in_gagaaaaaaa(X3, X19, X5, X6, X20, X21, X15, X16, X22, X18))
U14_gagaaaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, balancecA_out_gagaaaaaaa(X3, X19, X5, X6, X20, X21, X15, X16, X22, X18)) → balancecA_out_gagaaaaaaa(tree(X1, X2, X3), X4, X5, X6, .(','(tree(X7, X8, X9), -(X10, X11)), X12), .(','(X7, -(X10, .(X8, X13))), .(','(X9, -(X13, X11)), X14)), X15, X16, X17, X18)
balancecC_in_gagaaaaaaaaaa(nil, .(X1, X2), X1, X2, X3, X4, X5, X6, X7, .(','(X3, -(.(X1, X2), .(X4, X5))), .(','(X6, -(X5, [])), X7)), X7, .(','(nil, -(X8, X8)), X9), X9) → balancecC_out_gagaaaaaaaaaa(nil, .(X1, X2), X1, X2, X3, X4, X5, X6, X7, .(','(X3, -(.(X1, X2), .(X4, X5))), .(','(X6, -(X5, [])), X7)), X7, .(','(nil, -(X8, X8)), X9), X9)
balancecC_in_gagaaaaaaaaaa(tree(X1, X2, X3), X4, X5, X6, tree(X7, X8, X9), X10, X11, X12, .(','(X7, -(X4, .(X8, X13))), .(','(X9, -(X13, .(X10, X11))), X14)), X15, X16, X17, X18) → U17_gagaaaaaaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, balancecA_in_gagaaaaaaa(X1, X4, X2, X19, .(','(X12, -(X11, [])), .(','(X7, -(X4, .(X8, X13))), .(','(X9, -(X13, .(X10, X11))), X14))), X14, X20, X21, X17, X22))
U17_gagaaaaaaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, balancecA_out_gagaaaaaaa(X1, X4, X2, X19, .(','(X12, -(X11, [])), .(','(X7, -(X4, .(X8, X13))), .(','(X9, -(X13, .(X10, X11))), X14))), X14, X20, X21, X17, X22)) → U18_gagaaaaaaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, balancecA_in_gagaaaaaaa(X3, X19, X5, X6, X20, X21, X15, X16, X22, X18))
U18_gagaaaaaaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, balancecA_out_gagaaaaaaa(X3, X19, X5, X6, X20, X21, X15, X16, X22, X18)) → balancecC_out_gagaaaaaaaaaa(tree(X1, X2, X3), X4, X5, X6, tree(X7, X8, X9), X10, X11, X12, .(','(X7, -(X4, .(X8, X13))), .(','(X9, -(X13, .(X10, X11))), X14)), X15, X16, X17, X18)

The argument filtering Pi contains the following mapping:
tree(x1, x2, x3)  =  tree(x1, x2, x3)
balancecA_in_gagaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10)  =  balancecA_in_gagaaaaaaa(x1, x3)
nil  =  nil
balancecA_out_gagaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10)  =  balancecA_out_gagaaaaaaa(x1, x3)
U13_gagaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19)  =  U13_gagaaaaaaa(x1, x2, x3, x5, x19)
U14_gagaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23)  =  U14_gagaaaaaaa(x1, x2, x3, x5, x23)
balancecC_in_gagaaaaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13)  =  balancecC_in_gagaaaaaaaaaa(x1, x3)
balancecC_out_gagaaaaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13)  =  balancecC_out_gagaaaaaaaaaa(x1, x3)
U17_gagaaaaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19)  =  U17_gagaaaaaaaaaa(x1, x2, x3, x5, x19)
U18_gagaaaaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23)  =  U18_gagaaaaaaaaaa(x1, x2, x3, x5, x23)
BALANCEA_IN_GAGAAAAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10)  =  BALANCEA_IN_GAGAAAAAAA(x1, x3)
U2_GAGAAAAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19)  =  U2_GAGAAAAAAA(x1, x2, x3, x5, x19)

We have to consider all (P,R,Pi)-chains

(8) UsableRulesProof (EQUIVALENT transformation)

For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.

(9) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

BALANCEA_IN_GAGAAAAAAA(tree(X1, X2, X3), X4, X5, X6, .(','(tree(X7, X8, X9), -(X10, X11)), X12), .(','(X7, -(X10, .(X8, X13))), .(','(X9, -(X13, X11)), X14)), X15, X16, X17, X18) → U2_GAGAAAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, balancecA_in_gagaaaaaaa(X1, X4, X2, X19, X12, X14, X20, X21, X17, X22))
U2_GAGAAAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, balancecA_out_gagaaaaaaa(X1, X4, X2, X19, X12, X14, X20, X21, X17, X22)) → BALANCEA_IN_GAGAAAAAAA(X3, X19, X5, X6, X20, X21, X15, X16, X22, X18)
BALANCEA_IN_GAGAAAAAAA(tree(X1, X2, X3), X4, X5, X6, .(','(tree(X7, X8, X9), -(X10, X11)), X12), .(','(X7, -(X10, .(X8, X13))), .(','(X9, -(X13, X11)), X14)), X15, X16, X17, X18) → BALANCEA_IN_GAGAAAAAAA(X1, X4, X2, X19, X12, X14, X20, X21, X17, X22)

The TRS R consists of the following rules:

balancecA_in_gagaaaaaaa(nil, .(X1, X2), X1, X2, X3, X4, X3, X4, .(','(nil, -(X5, X5)), X6), X6) → balancecA_out_gagaaaaaaa(nil, .(X1, X2), X1, X2, X3, X4, X3, X4, .(','(nil, -(X5, X5)), X6), X6)
balancecA_in_gagaaaaaaa(tree(X1, X2, X3), X4, X5, X6, .(','(tree(X7, X8, X9), -(X10, X11)), X12), .(','(X7, -(X10, .(X8, X13))), .(','(X9, -(X13, X11)), X14)), X15, X16, X17, X18) → U13_gagaaaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, balancecA_in_gagaaaaaaa(X1, X4, X2, X19, X12, X14, X20, X21, X17, X22))
U13_gagaaaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, balancecA_out_gagaaaaaaa(X1, X4, X2, X19, X12, X14, X20, X21, X17, X22)) → U14_gagaaaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, balancecA_in_gagaaaaaaa(X3, X19, X5, X6, X20, X21, X15, X16, X22, X18))
U14_gagaaaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, balancecA_out_gagaaaaaaa(X3, X19, X5, X6, X20, X21, X15, X16, X22, X18)) → balancecA_out_gagaaaaaaa(tree(X1, X2, X3), X4, X5, X6, .(','(tree(X7, X8, X9), -(X10, X11)), X12), .(','(X7, -(X10, .(X8, X13))), .(','(X9, -(X13, X11)), X14)), X15, X16, X17, X18)

The argument filtering Pi contains the following mapping:
tree(x1, x2, x3)  =  tree(x1, x2, x3)
balancecA_in_gagaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10)  =  balancecA_in_gagaaaaaaa(x1, x3)
nil  =  nil
balancecA_out_gagaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10)  =  balancecA_out_gagaaaaaaa(x1, x3)
U13_gagaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19)  =  U13_gagaaaaaaa(x1, x2, x3, x5, x19)
U14_gagaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23)  =  U14_gagaaaaaaa(x1, x2, x3, x5, x23)
BALANCEA_IN_GAGAAAAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10)  =  BALANCEA_IN_GAGAAAAAAA(x1, x3)
U2_GAGAAAAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19)  =  U2_GAGAAAAAAA(x1, x2, x3, x5, x19)

We have to consider all (P,R,Pi)-chains

(10) PiDPToQDPProof (SOUND transformation)

Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.

(11) Obligation:

Q DP problem:
The TRS P consists of the following rules:

BALANCEA_IN_GAGAAAAAAA(tree(X1, X2, X3), X5) → U2_GAGAAAAAAA(X1, X2, X3, X5, balancecA_in_gagaaaaaaa(X1, X2))
U2_GAGAAAAAAA(X1, X2, X3, X5, balancecA_out_gagaaaaaaa(X1, X2)) → BALANCEA_IN_GAGAAAAAAA(X3, X5)
BALANCEA_IN_GAGAAAAAAA(tree(X1, X2, X3), X5) → BALANCEA_IN_GAGAAAAAAA(X1, X2)

The TRS R consists of the following rules:

balancecA_in_gagaaaaaaa(nil, X1) → balancecA_out_gagaaaaaaa(nil, X1)
balancecA_in_gagaaaaaaa(tree(X1, X2, X3), X5) → U13_gagaaaaaaa(X1, X2, X3, X5, balancecA_in_gagaaaaaaa(X1, X2))
U13_gagaaaaaaa(X1, X2, X3, X5, balancecA_out_gagaaaaaaa(X1, X2)) → U14_gagaaaaaaa(X1, X2, X3, X5, balancecA_in_gagaaaaaaa(X3, X5))
U14_gagaaaaaaa(X1, X2, X3, X5, balancecA_out_gagaaaaaaa(X3, X5)) → balancecA_out_gagaaaaaaa(tree(X1, X2, X3), X5)

The set Q consists of the following terms:

balancecA_in_gagaaaaaaa(x0, x1)
U13_gagaaaaaaa(x0, x1, x2, x3, x4)
U14_gagaaaaaaa(x0, x1, x2, x3, x4)

We have to consider all (P,Q,R)-chains.

(12) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • U2_GAGAAAAAAA(X1, X2, X3, X5, balancecA_out_gagaaaaaaa(X1, X2)) → BALANCEA_IN_GAGAAAAAAA(X3, X5)
    The graph contains the following edges 3 >= 1, 4 >= 2

  • BALANCEA_IN_GAGAAAAAAA(tree(X1, X2, X3), X5) → BALANCEA_IN_GAGAAAAAAA(X1, X2)
    The graph contains the following edges 1 > 1, 1 > 2

  • BALANCEA_IN_GAGAAAAAAA(tree(X1, X2, X3), X5) → U2_GAGAAAAAAA(X1, X2, X3, X5, balancecA_in_gagaaaaaaa(X1, X2))
    The graph contains the following edges 1 > 1, 1 > 2, 1 > 3, 2 >= 4

(13) YES

(14) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

BALANCEB_IN_GAAAAA(tree(X1, X2, X3), X4, .(','(tree(X5, X6, X7), -(X8, X9)), X10), .(','(X5, -(X8, .(X6, X11))), .(','(X7, -(X11, X9)), X12)), X13, X14) → U5_GAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, balancecA_in_gagaaaaaaa(X1, X4, X2, X15, X10, X12, X16, X17, X14, X18))
U5_GAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, balancecA_out_gagaaaaaaa(X1, X4, X2, X15, X10, X12, X16, X17, X14, X18)) → BALANCEB_IN_GAAAAA(X3, X15, X16, X17, X13, X18)

The TRS R consists of the following rules:

balancecA_in_gagaaaaaaa(nil, .(X1, X2), X1, X2, X3, X4, X3, X4, .(','(nil, -(X5, X5)), X6), X6) → balancecA_out_gagaaaaaaa(nil, .(X1, X2), X1, X2, X3, X4, X3, X4, .(','(nil, -(X5, X5)), X6), X6)
balancecA_in_gagaaaaaaa(tree(X1, X2, X3), X4, X5, X6, .(','(tree(X7, X8, X9), -(X10, X11)), X12), .(','(X7, -(X10, .(X8, X13))), .(','(X9, -(X13, X11)), X14)), X15, X16, X17, X18) → U13_gagaaaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, balancecA_in_gagaaaaaaa(X1, X4, X2, X19, X12, X14, X20, X21, X17, X22))
U13_gagaaaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, balancecA_out_gagaaaaaaa(X1, X4, X2, X19, X12, X14, X20, X21, X17, X22)) → U14_gagaaaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, balancecA_in_gagaaaaaaa(X3, X19, X5, X6, X20, X21, X15, X16, X22, X18))
U14_gagaaaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, balancecA_out_gagaaaaaaa(X3, X19, X5, X6, X20, X21, X15, X16, X22, X18)) → balancecA_out_gagaaaaaaa(tree(X1, X2, X3), X4, X5, X6, .(','(tree(X7, X8, X9), -(X10, X11)), X12), .(','(X7, -(X10, .(X8, X13))), .(','(X9, -(X13, X11)), X14)), X15, X16, X17, X18)
balancecC_in_gagaaaaaaaaaa(nil, .(X1, X2), X1, X2, X3, X4, X5, X6, X7, .(','(X3, -(.(X1, X2), .(X4, X5))), .(','(X6, -(X5, [])), X7)), X7, .(','(nil, -(X8, X8)), X9), X9) → balancecC_out_gagaaaaaaaaaa(nil, .(X1, X2), X1, X2, X3, X4, X5, X6, X7, .(','(X3, -(.(X1, X2), .(X4, X5))), .(','(X6, -(X5, [])), X7)), X7, .(','(nil, -(X8, X8)), X9), X9)
balancecC_in_gagaaaaaaaaaa(tree(X1, X2, X3), X4, X5, X6, tree(X7, X8, X9), X10, X11, X12, .(','(X7, -(X4, .(X8, X13))), .(','(X9, -(X13, .(X10, X11))), X14)), X15, X16, X17, X18) → U17_gagaaaaaaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, balancecA_in_gagaaaaaaa(X1, X4, X2, X19, .(','(X12, -(X11, [])), .(','(X7, -(X4, .(X8, X13))), .(','(X9, -(X13, .(X10, X11))), X14))), X14, X20, X21, X17, X22))
U17_gagaaaaaaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, balancecA_out_gagaaaaaaa(X1, X4, X2, X19, .(','(X12, -(X11, [])), .(','(X7, -(X4, .(X8, X13))), .(','(X9, -(X13, .(X10, X11))), X14))), X14, X20, X21, X17, X22)) → U18_gagaaaaaaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, balancecA_in_gagaaaaaaa(X3, X19, X5, X6, X20, X21, X15, X16, X22, X18))
U18_gagaaaaaaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, balancecA_out_gagaaaaaaa(X3, X19, X5, X6, X20, X21, X15, X16, X22, X18)) → balancecC_out_gagaaaaaaaaaa(tree(X1, X2, X3), X4, X5, X6, tree(X7, X8, X9), X10, X11, X12, .(','(X7, -(X4, .(X8, X13))), .(','(X9, -(X13, .(X10, X11))), X14)), X15, X16, X17, X18)

The argument filtering Pi contains the following mapping:
tree(x1, x2, x3)  =  tree(x1, x2, x3)
balancecA_in_gagaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10)  =  balancecA_in_gagaaaaaaa(x1, x3)
nil  =  nil
balancecA_out_gagaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10)  =  balancecA_out_gagaaaaaaa(x1, x3)
U13_gagaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19)  =  U13_gagaaaaaaa(x1, x2, x3, x5, x19)
U14_gagaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23)  =  U14_gagaaaaaaa(x1, x2, x3, x5, x23)
balancecC_in_gagaaaaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13)  =  balancecC_in_gagaaaaaaaaaa(x1, x3)
balancecC_out_gagaaaaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13)  =  balancecC_out_gagaaaaaaaaaa(x1, x3)
U17_gagaaaaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19)  =  U17_gagaaaaaaaaaa(x1, x2, x3, x5, x19)
U18_gagaaaaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23)  =  U18_gagaaaaaaaaaa(x1, x2, x3, x5, x23)
BALANCEB_IN_GAAAAA(x1, x2, x3, x4, x5, x6)  =  BALANCEB_IN_GAAAAA(x1)
U5_GAAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15)  =  U5_GAAAAA(x1, x2, x3, x15)

We have to consider all (P,R,Pi)-chains

(15) UsableRulesProof (EQUIVALENT transformation)

For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.

(16) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

BALANCEB_IN_GAAAAA(tree(X1, X2, X3), X4, .(','(tree(X5, X6, X7), -(X8, X9)), X10), .(','(X5, -(X8, .(X6, X11))), .(','(X7, -(X11, X9)), X12)), X13, X14) → U5_GAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, balancecA_in_gagaaaaaaa(X1, X4, X2, X15, X10, X12, X16, X17, X14, X18))
U5_GAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, balancecA_out_gagaaaaaaa(X1, X4, X2, X15, X10, X12, X16, X17, X14, X18)) → BALANCEB_IN_GAAAAA(X3, X15, X16, X17, X13, X18)

The TRS R consists of the following rules:

balancecA_in_gagaaaaaaa(nil, .(X1, X2), X1, X2, X3, X4, X3, X4, .(','(nil, -(X5, X5)), X6), X6) → balancecA_out_gagaaaaaaa(nil, .(X1, X2), X1, X2, X3, X4, X3, X4, .(','(nil, -(X5, X5)), X6), X6)
balancecA_in_gagaaaaaaa(tree(X1, X2, X3), X4, X5, X6, .(','(tree(X7, X8, X9), -(X10, X11)), X12), .(','(X7, -(X10, .(X8, X13))), .(','(X9, -(X13, X11)), X14)), X15, X16, X17, X18) → U13_gagaaaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, balancecA_in_gagaaaaaaa(X1, X4, X2, X19, X12, X14, X20, X21, X17, X22))
U13_gagaaaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, balancecA_out_gagaaaaaaa(X1, X4, X2, X19, X12, X14, X20, X21, X17, X22)) → U14_gagaaaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, balancecA_in_gagaaaaaaa(X3, X19, X5, X6, X20, X21, X15, X16, X22, X18))
U14_gagaaaaaaa(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, balancecA_out_gagaaaaaaa(X3, X19, X5, X6, X20, X21, X15, X16, X22, X18)) → balancecA_out_gagaaaaaaa(tree(X1, X2, X3), X4, X5, X6, .(','(tree(X7, X8, X9), -(X10, X11)), X12), .(','(X7, -(X10, .(X8, X13))), .(','(X9, -(X13, X11)), X14)), X15, X16, X17, X18)

The argument filtering Pi contains the following mapping:
tree(x1, x2, x3)  =  tree(x1, x2, x3)
balancecA_in_gagaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10)  =  balancecA_in_gagaaaaaaa(x1, x3)
nil  =  nil
balancecA_out_gagaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10)  =  balancecA_out_gagaaaaaaa(x1, x3)
U13_gagaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19)  =  U13_gagaaaaaaa(x1, x2, x3, x5, x19)
U14_gagaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23)  =  U14_gagaaaaaaa(x1, x2, x3, x5, x23)
BALANCEB_IN_GAAAAA(x1, x2, x3, x4, x5, x6)  =  BALANCEB_IN_GAAAAA(x1)
U5_GAAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15)  =  U5_GAAAAA(x1, x2, x3, x15)

We have to consider all (P,R,Pi)-chains

(17) PiDPToQDPProof (SOUND transformation)

Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.

(18) Obligation:

Q DP problem:
The TRS P consists of the following rules:

BALANCEB_IN_GAAAAA(tree(X1, X2, X3)) → U5_GAAAAA(X1, X2, X3, balancecA_in_gagaaaaaaa(X1, X2))
U5_GAAAAA(X1, X2, X3, balancecA_out_gagaaaaaaa(X1, X2)) → BALANCEB_IN_GAAAAA(X3)

The TRS R consists of the following rules:

balancecA_in_gagaaaaaaa(nil, X1) → balancecA_out_gagaaaaaaa(nil, X1)
balancecA_in_gagaaaaaaa(tree(X1, X2, X3), X5) → U13_gagaaaaaaa(X1, X2, X3, X5, balancecA_in_gagaaaaaaa(X1, X2))
U13_gagaaaaaaa(X1, X2, X3, X5, balancecA_out_gagaaaaaaa(X1, X2)) → U14_gagaaaaaaa(X1, X2, X3, X5, balancecA_in_gagaaaaaaa(X3, X5))
U14_gagaaaaaaa(X1, X2, X3, X5, balancecA_out_gagaaaaaaa(X3, X5)) → balancecA_out_gagaaaaaaa(tree(X1, X2, X3), X5)

The set Q consists of the following terms:

balancecA_in_gagaaaaaaa(x0, x1)
U13_gagaaaaaaa(x0, x1, x2, x3, x4)
U14_gagaaaaaaa(x0, x1, x2, x3, x4)

We have to consider all (P,Q,R)-chains.

(19) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • U5_GAAAAA(X1, X2, X3, balancecA_out_gagaaaaaaa(X1, X2)) → BALANCEB_IN_GAAAAA(X3)
    The graph contains the following edges 3 >= 1

  • BALANCEB_IN_GAAAAA(tree(X1, X2, X3)) → U5_GAAAAA(X1, X2, X3, balancecA_in_gagaaaaaaa(X1, X2))
    The graph contains the following edges 1 > 1, 1 > 2, 1 > 3

(20) YES